<?php
namespace LC\EntityBundle\Entity;

use Doctrine\ORM\Mapping as ORM;

/**
 * @ORM\Entity
 * @ORM\Table(name="Biker")
 * 
 * @author Ralf Almon 21.06.2013
 */
class Biker {
	
	
	/**
	 * @ORM\Column(type="string",length=100)
	 */
	protected $mailaddy;
	
	//to be implemented
	protected $avatar;
	
	/**
	 * @ORM\Column(type="decimal", scale=2);
	 */
	protected $height;
	
	/**
	 * @ORM\Column(type="decimal", scale=2)
	 */
	protected $weight;
	
	/**
	 * @ORM\Column(type="string",length=100)
	 */
	protected $signature;
	
	/**
	 * @ORM\Column(type="date")
	 */
	protected $birthdate;
	
	/**
	 * @ORM\Id
	 * @ORM\Column(type="string", length=50)
	 */
	protected $nick;
	
	
	/**
	 * @ORM\OneToMany(targetEntity="Bike", mappedBy="owner")
	 */
	protected $bikes;
	
	
	/**
	 * @ORM\OneToMany(targetEntity="Track", mappedBy="discoverer");
	 */
	protected $tracks;
	
	public function __construct() {
		$this->bikes = new \Doctrine\Common\Collections\ArrayCollection();
		$this->tracks = new \Doctrine\Common\Collections\ArrayCollection();
	}

	
	
	
	/**
	 * -------------------------------Getters and Setters - Boring ------------------------------------
	 */
		
	
	
    /**
     * Set mailaddress
     *
     * @param string $mailaddress
     * @return Biker
     */
    public function setMailaddress($mailaddress)
    {
        $this->mailaddress = $mailaddress;
    
        return $this;
    }

    /**
     * Get mailaddress
     *
     * @return string 
     */
    public function getMailaddress()
    {
        return $this->mailaddress;
    }

    /**
     * Set height
     *
     * @param float $height
     * @return Biker
     */
    public function setHeight($height)
    {
        $this->height = $height;
    
        return $this;
    }

    /**
     * Get height
     *
     * @return float 
     */
    public function getHeight()
    {
        return $this->height;
    }

    /**
     * Set weight
     *
     * @param float $weight
     * @return Biker
     */
    public function setWeight($weight)
    {
        $this->weight = $weight;
    
        return $this;
    }

    /**
     * Get weight
     *
     * @return float 
     */
    public function getWeight()
    {
        return $this->weight;
    }

    /**
     * Set signature
     *
     * @param string $signature
     * @return Biker
     */
    public function setSignature($signature)
    {
        $this->signature = $signature;
    
        return $this;
    }

    /**
     * Get signature
     *
     * @return string 
     */
    public function getSignature()
    {
        return $this->signature;
    }

    /**
     * Set birthdate
     *
     * @param \DateTime $birthdate
     * @return Biker
     */
    public function setBirthdate($birthdate)
    {
        $this->birthdate = $birthdate;
    
        return $this;
    }

    /**
     * Get birthdate
     *
     * @return \DateTime 
     */
    public function getBirthdate()
    {
        return $this->birthdate;
    }

    /**
     * Set nick
     *
     * @param string $nick
     * @return Biker
     */
    public function setNick($nick)
    {
        $this->nick = $nick;
    
        return $this;
    }

    /**
     * Get nick
     *
     * @return string 
     */
    public function getNick()
    {
        return $this->nick;
    }

    /**
     * Set mailaddy
     *
     * @param string $mailaddy
     * @return Biker
     */
    public function setMailaddy($mailaddy)
    {
        $this->mailaddy = $mailaddy;
    
        return $this;
    }

    /**
     * Get mailaddy
     *
     * @return string 
     */
    public function getMailaddy()
    {
        return $this->mailaddy;
    }

    /**
     * Set bikes
     *
     * @param \LC\EntityBundle\Entity\Bike $bikes
     * @return Biker
     */
    public function setBikes(\LC\EntityBundle\Entity\Bike $bikes = null)
    {
        $this->bikes = $bikes;
    
        return $this;
    }

    /**
     * Get bikes
     *
     * @return \LC\EntityBundle\Entity\Bike 
     */
    public function getBikes()
    {
        return $this->bikes;
    }

    /**
     * Add bikes
     *
     * @param \LC\EntityBundle\Entity\Bike $bikes
     * @return Biker
     */
    public function addBike(\LC\EntityBundle\Entity\Bike $bikes)
    {
        $this->bikes[] = $bikes;
    
        return $this;
    }

    /**
     * Remove bikes
     *
     * @param \LC\EntityBundle\Entity\Bike $bikes
     */
    public function removeBike(\LC\EntityBundle\Entity\Bike $bikes)
    {
        $this->bikes->removeElement($bikes);
    }

    /**
     * Add touren
     *
     * @param \LC\EntityBundle\Entity\Tour $touren
     * @return Biker
     */
    public function addTouren(\LC\EntityBundle\Entity\Tour $touren)
    {
        $this->touren[] = $touren;
    
        return $this;
    }

    /**
     * Remove touren
     *
     * @param \LC\EntityBundle\Entity\Tour $touren
     */
    public function removeTouren(\LC\EntityBundle\Entity\Tour $touren)
    {
        $this->touren->removeElement($touren);
    }

    /**
     * Get touren
     *
     * @return \Doctrine\Common\Collections\Collection 
     */
    public function getTouren()
    {
        return $this->touren;
    }

    /**
     * Add tracks
     *
     * @param \LC\EntityBundle\Entity\Track $tracks
     * @return Biker
     */
    public function addTrack(\LC\EntityBundle\Entity\Track $tracks)
    {
        $this->tracks[] = $tracks;
    
        return $this;
    }

    /**
     * Remove tracks
     *
     * @param \LC\EntityBundle\Entity\Track $tracks
     */
    public function removeTrack(\LC\EntityBundle\Entity\Track $tracks)
    {
        $this->tracks->removeElement($tracks);
    }

    /**
     * Get tracks
     *
     * @return \Doctrine\Common\Collections\Collection 
     */
    public function getTracks()
    {
        return $this->tracks;
    }
}